package com.gitee.feizns.quickstart.web.ex.annotation;

import com.gitee.feizns.quickstart.domain.vo.Ret;
import org.springframework.http.HttpStatus;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 错误响应码映射（在web条件下全局异常处理器抓取到的异常如果其有注解，则使用注解的响应码）
 * @author feizns
 * @since 2023/12/15
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface ErrorCodeMapper {

    /**
     * 错误消息
     * @return {@link String}
     */
    String value();

    /**
     * 错误码（默认错误码500）
     * @return int
     */
    int code() default Ret.INTERNAL_SERVER_ERROR;

    /**
     * http响应码（默认HTTP响应码 OK）
     */
    HttpStatus status() default HttpStatus.OK;

}
